pxCompoundAddCapsuleShape%(compoundDesc%, radius#, height#)

Параметры

compoundDesc% - составная геометрия
radius# - радиус
height# - высота

Описание

Добавляет в составную геометрию физическое тело капсула с радиусом radius и восотой height

Смотрите так же

Пример

;Пример использования функции
;pxCompoundAddCapsuleShape

Graphics3D 800, 600, 32, 2
SetBuffer BackBuffer()

PxCreateWorld(1)
pxSetGravity(0, -10, 0)

camera=CreateCamera()
light=CreateLight()
PositionEntity camera,0,20,-40
RotateEntity camera,30,0,0

plane=CreatePlane()
EntityColor plane,0,100,200
EntityAlpha plane,0.5

mir = CreateMirror()

;Создаем отображаемое составное тело
comp_mesh = CreateCube()
ScaleEntity comp_mesh, 1,1,1
PositionMesh comp_mesh, -4,0,0

comp_cyl_mesh = CreateCylinder()
ScaleMesh comp_cyl_mesh, 1,2,1
PositionMesh comp_cyl_mesh, -2,0,0
AddMesh comp_cyl_mesh , comp_mesh
FreeEntity comp_cyl_mesh

comp_sp_mesh = CreateSphere()
PositionMesh comp_sp_mesh, 0,0,0
AddMesh comp_sp_mesh , comp_mesh
FreeEntity comp_sp_mesh

comp_cap_mesh = Mesh_Capsule(0.5, 6)
PositionMesh comp_cap_mesh, 2,0,0
;RotateMesh comp_cap_mesh, 0,0,90
AddMesh comp_cap_mesh , comp_mesh
FreeEntity comp_cap_mesh

;Создаем составное тело PX
comp_desc = pxCreateCompoundDesc()

comp_cube_shape = pxCompoundAddCubeShape(comp_desc, 1, 1, 1)
pxCompoundSetShapePos (comp_cube_shape, -4,0,0)
pxCompoundSetShapeRot (comp_cube_shape, 0,0,0)

comp_cyl_shape = pxCompoundAddCylinderShape(comp_desc, 1, 2, 8)
pxCompoundSetShapePos (comp_cyl_shape, -2,0,0)
pxCompoundSetShapeRot (comp_cyl_shape, 0,0,0)

comp_sp_shape = pxCompoundAddSphereShape(comp_desc, 1)
pxCompoundSetShapePos (comp_sp_shape, 0,0,0)

;----------- применяем pxCompoundAddCapsuleShape: ------------
comp_cap_shape = pxCompoundAddCapsuleShape(comp_desc, 0.5, 6)
pxCompoundSetShapePos (comp_cap_shape, 2,0,0)
pxCompoundSetShapeRot (comp_cap_shape, 0,0,00)

comp_body = pxCreateCompound(comp_desc, 2); создаём боди из дескриптора
pxSetPosition(comp_body ,0,5,0)

;Создадим кубик
cu = pxCreateCube( 1, 1, 1, 1)
pxSetPosition(cu,0,10,0)
cu_mesh = CreateCube()
EntityColor cu_mesh,255,0,0 ;цвет - зеленый

While Not KeyDown( 1 )

    If KeyDown(200) pxAddForce(cu,0,0,20,0)
    If KeyDown(208) pxAddForce(cu,0,0,-20,0)
    If KeyDown(205) pxAddForce(cu,20,0,0,0)
    If KeyDown(203) pxAddForce(cu,-20,0,0,0)

;обсчитываем физический мир
    RenderPhysic(60,0)

;ставим тела в позиции
    pxSetEntity(comp_mesh, comp_body)
    pxSetEntity(cu_mesh , cu)

    RenderWorld

    Text 10,10,"Курсор - управляет зеленым телом"

    Flip
    Wend
End

;Создает визуализацию капсулы
Function Mesh_Capsule(radius#, height#)
;на основе цилиндра
    capsule= CreateCylinder()
    ScaleMesh capsule, radius, height/2, radius
    PositionMesh capsule,0,0,0

;И двух сфер
    sphere1 = CreateSphere()
    ScaleMesh sphere1,radius,radius,radius
    PositionMesh sphere1,0, height/2,0
    AddMesh sphere1,capsule

    sphere2 = CreateSphere()
    ScaleMesh sphere2,radius,radius,radius
    PositionMesh sphere2,0, -height/2,0
    AddMesh sphere2,capsule

    FreeEntity sphere1
    FreeEntity sphere2

    HideEntity capsule
    Return capsule
End Function

К содержанию

Нажмите здесь чтобы увидеть последнюю версию этой странички в режиме online.